
package com.waitingsnow.common.share.qqMicroBlog.api
{
	import com.waitingsnow.common.share.qqMicroBlog.operation.IRequestOperation;
	
	/**
	 * 私信相关的API
	 * @langversion 3.0
	 * @playerversion Flash 9
	 * @playerversion AIR 1.1
	 *
	 */
	public class Message extends AbstractAPI
	{
		
		/**
		 * 1.发表一条私信
		 * @param content 微博内容
		 * @param name  他人的帐户名（可选）
		 * @param fopenid 他人的openid（可选）name和fopenid至少选一个，若同时存在则以name值为主
		 * @param clientip 用户ip(以分析用户所在地)
		 * @param jing 经度（可以填空）
		 * @param wei 纬度（可以填空）
		 * @return IRequestOperation实例
		 */		
		public function add(content:String,name:String=null,fopenid:String=null,clientip:String="127.0.0.1",jing:String="",wei:String=""):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"private/add";
			var attachParms:Object = {};
			attachParms.content = content;
			if(name != null)
				attachParms.name = name;
			if(fopenid != null)
				attachParms.fopenid = fopenid;
			attachParms.clientip = clientip;
			attachParms.jing = jing;
			attachParms.wei = wei;
			return generateDataRequest(url,attachParms,"POST");
		}
		/**
		 * 2.删除一条私信
		 * @param id 微博ID
		 * @return IRequestOperation实例
		 */		
		public function del(id:String):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"private/del";
			var attachParms:Object = {};
			attachParms.id = id;
			return generateDataRequest(url,attachParms,"POST");
		}
		/**
		 * 3.收件箱
		 * @param pageflag 分页标识（0：第一页，1：向下翻页，2向上翻页）
		 * @param pagetime 本页起始时间（第一页0，继续：根据返回记录时间决定）
		 * @param reqnum 每次请求记录的条数（1-20条）
		 * @param lastid 第一页时填0,继续向下翻页，填上一次请求返回的最后一条记录id，翻页用
		 * @return IRequestOperation实例
		 */		
		public function recv(pageflag:int=0,pagetime:int=0,reqnum:int=20,lastid:String="0"):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"private/recv";
			var attachParms:Object = {};
			attachParms.pageflag = pageflag;
			attachParms.pagetime = pagetime;
			attachParms.reqnum = reqnum;
			attachParms.lastid = lastid;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 4.发件箱
		 * @param pageflag 分页标识（0：第一页，1：向下翻页，2向上翻页）
		 * @param pagetime 本页起始时间（第一页0，继续：根据返回记录时间决定）
		 * @param reqnum 每次请求记录的条数（1-20条）
		 * @param lastid 第一页时填0,继续向下翻页，填上一次请求返回的最后一条记录id，翻页用
		 * @return IRequestOperation实例
		 */		
		public function send(pageflag:int=0,pagetime:int=0,reqnum:int=20,lastid:String="0"):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"private/send";
			var attachParms:Object = {};
			attachParms.pageflag = pageflag;
			attachParms.pagetime = pagetime;
			attachParms.reqnum = reqnum;
			attachParms.lastid = lastid;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
	}
}